package com.solution.admin.point.dao.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.solution.admin.point.dao.PointDao;
import com.solution.admin.point.entity.PointEntity;
import com.solution.common.dao.impl.BaseDaoImpl;
import com.solution.common.page.PageBean;
import com.solution.common.page.PageParam;

/**
 * 积分信息DAO实现
 * 
 * @author xu_cc
 * @date 2017-10-20 14:19:17
 */
@Repository
public class PointDaoImpl extends BaseDaoImpl<PointEntity> implements PointDao {

    /**
     * 根据客户ID获取积分信息
     * 
     * @Title: getPointByCustomerId
     * @Description:(描述)
     * @param customerId
     * @return PointEntity
     * @author xu_cc
     * @throws Exception
     *             exception
     * @Date 创建时间：2017年10月23日 上午10:50:45
     */
    public PointEntity getPointByCustomerId(Long customerId) {
        return getSessionTemplate().selectOne(getStatement("getPointByCustomerId"), customerId);
    }

    /**
     * 保存积分信息信息
     * 
     * @param pointEntity
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:19:17
     */
    @Override
    public long savePoint(PointEntity pointEntity) {
        return super.insert(pointEntity);
    }

    /**
     * 分页查询积分信息信息
     * 
     * @param pageParam
     *            分页对象
     * @param point
     *            分页参数
     * @return PageBean 分页参数及数据
     * @author xu_cc
     * @date 2017-10-20 14:19:17
     */
    public PageBean listPointPage(PageParam pageParam, Map<String, Object> param) {
        return super.listPage(pageParam, param);
    }

    /**
     * 更新积分信息
     * 
     * @param pointEntity
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:19:17
     */
    @Override
    public int updatePoint(PointEntity pointEntity) {
        return super.update(pointEntity);
    }

    /**
     * 删除积分信息
     * 
     * @param pointId
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:19:17
     */
    public int deletePointById(Long id) {
        return super.deleteById(id);
    }

    /**
     * 根据条件查询积分信息
     * 
     * @param param
     * @return
     * @author xu_cc
     * @date 2017-10-20 14:19:17
     */
    @Override
    public List<PointEntity> listPoint(Map<String, Object> param) {
        return super.listBy(param);
    }
    
    
    /**
     * 更新客户积分账户的余额
     * @param point
     * @return
     * @author lilp
     */
    @Override
	public int updateCustomerPoint(PointEntity point){
		return getSessionTemplate().update(getStatement("updateCustomerPoint"), point);
	}
}
